Vision System for Robotic Attacher

ABSTRACT

In certain embodiments, a system includes a controller operable to access a first image generated by a first camera. The controller determines a reference point from at least one main feature of a dairy livestock included in the first image. The controller is further operable to access a second image generated by the second camera. The second image includes at least a portion of an udder of the dairy livestock. The controller determines a location of a teat of the dairy livestock based on the second image.

TECHNICAL FIELD

This invention relates generally to dairy farming and more particularly to a vision system for a robotic attacher.

BACKGROUND OF THE INVENTION

Over time, the size and complexity of dairy milking operations has increased. Accordingly, the need for efficient and scalable systems and methods that support dairy milking operations has also increased. Systems and methods supporting dairy milking operations, however, have proven inadequate in various respects.

SUMMARY OF THE INVENTION

According to embodiments of the present disclosure, disadvantages and problems associated with previous systems supporting dairy milking operations may be reduced or eliminated.

In certain embodiments, a system includes a controller operable to access a first image generated by a first camera. The controller determines a reference point from at least one main feature of a dairy livestock included in the first image. The controller is further operable to access a second image generated by the second camera. The second image includes at least a portion of an udder of the dairy livestock. The controller determines a location of a teat of the dairy livestock based on the second image.

Particular embodiments of the present disclosure may provide one or more technical advantages. For example, in some embodiments, the system of the present disclosure includes multiple cameras to facilitate locating the teats of a dairy livestock. Using multiple cameras may improve the visibility of the teats and may facilitate attaching milking equipment from a position to the rear of the cow, rather than to the side of the cow as in certain conventional systems. As another example, in some embodiments, the system of the present disclosure, in searching for the teats of a dairy livestock, may account for (1) a determined reference point relative to the dairy livestock, and/or (2) historical data describing a previous location of the teats relative to the reference point. Accounting for the determined reference point and/or the historical data in searching for the teats of a dairy livestock may allow for more accurate teat location, which may allow a robotic attacher to more efficiently attach milking equipment to the dairy livestock.

Certain embodiments of the present disclosure may include some, all, or none of the above advantages. One or more other technical advantages may be readily apparent to those skilled in the art from the figures, descriptions, and claims included herein.

BRIEF DESCRIPTION OF THE DRAWINGS

To provide a more complete understanding of the present invention and the features and advantages thereof, reference is made to the following description taken in conjunction with the accompanying drawings, in which:

FIGS. 1A-1B illustrate example configurations of an enclosure 100 in which one or more milking boxes are installed, according to certain embodiments of the present disclosure;

FIG. 2 illustrates an example controller that may be used to control one or more components of the example milking box depicted in FIG. 1, according to certain embodiments of the present disclosure;

FIG. 3 illustrates a detailed perspective view of the example milking box depicted in FIG. 1, according to certain embodiments of the present disclosure;

FIG. 4 illustrates a detailed perspective view of the example robotic attacher depicted in FIG. 3, according to certain embodiments of the present disclosure;

FIG. 5 illustrates an example method for milking a dairy cow using the example milking box depicted in FIGS. 1-4, according to certain embodiments of the present disclosure; and

FIG. 6 illustrates an example method for installation of the example milking box depicted in FIGS. 1-4, according to certain embodiments of the present disclosure.

DETAILED DESCRIPTION OF THE DRAWINGS

FIGS. 1A-1B illustrate example configurations of an enclosure 100 in which one or more milking boxes 120 are installed, according to certain embodiments of the present disclosure. Enclosure 100 may be divided into a number of regions 110 (e.g., regions 110 a and 110 b), and each region 110 may include resting stalls, feeding troughs, walking paths, and/or other structure suitable for housing dairy livestock. Although the present disclosure contemplates enclosure 100 as housing any suitable dairy livestock (e.g., dairy cows, goats, sheep, water buffalo, etc.), the remainder of this description is detailed with respect to dairy cows.

Each milking box 120 may include a stall portion 122 configured to house a dairy cow being milked. The stall portion 122 of each milking box 120 may be defined by a number of walls 124, each of which may each be constructed from any suitable materials arranged in any suitable configuration operable to maintain a dairy cow within stall portion 122 during milking. In certain embodiments, stall portion 122 of milking box 120 may include walls 124 a, 124 b, 124 c, and 124 d. For purposes of illustration, wall 124 a may be designated as the front of milking box 120 such that the head of a dairy cow being milked would be facing wall 124 a. Wall 124 c may be positioned opposite wall 124 a and may be designated as the rear of milking box 120. Walls 124 b and 124 d may each form a side extending between the front and rear of milking box 120. Walls 124 a, 124 b, 124 c, and 124 d may be spaced apart a suitable distance to ensure the comfort of the dairy cow within stall portion 122.

Walls 124 b and/or 124 d may comprise one or more gates 126. In certain embodiments, wall 124 b and/or wall 124 d may comprise an entry gate 126 a and an exit gate 126 b. A dairy cow may enter milking box 120 through an opened entry gate 126 a and exit milking box 120 through an opened exit gate 126 b. Closing gates 126 may maintain the dairy cow within milking box 120 during milking, while opening one or more gates 126 may allow the dairy cow to exit milking box 120. In certain embodiments, gates 126 may each be coupled to a corresponding actuator such that the gates 126 may be automatically opened and/or closed. For example, the actuators corresponding to gates 126 may each be configured to communicate (e.g., via wireless or wireline communication) with a controller 200, depicted in detail in FIG. 2.

Controller 200 may include one or more computer systems at one or more locations. Examples of computer systems may include a personal computer, workstation, network computer, kiosk, wireless data port, personal data assistant (PDA), one or more processors within these or other devices, or any other suitable device for receiving, processing, storing, and communicating data. In short, controller 200 may include any suitable combination of software, firmware, and hardware. Controller 200 may include any appropriate interface 210 for receiving inputs and providing outputs, logic 220, one or more processing modules 230, and memory module 240. Logic 220 includes any information, logic, applications, rules, and/or instructions stored and/or executed by controller 200. Processing modules 230 may each include one or more microprocessors, controllers, or any other suitable computing devices or resources and may work, either alone or with other components, to provide a portion or all of the functionality described herein. Controller 200 may additionally include (or be communicatively coupled to via wireless or wireline communication) one or more memory modules 240. Memory modules 240 may be non-transitory and may each include any memory or database module. Memory modules 240 may take the form of volatile or non-volatile memory, including, without limitation, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), removable media, or any other suitable local or remote memory component.

Returning to FIG. 1, controller 200 may be operable to determine, using any appropriate logic in conjunction with signals received from other components of milking box 120 (e.g., presence sensor 132, gate sensors 134, and/or identification sensor 136, each of which is described with regard to FIG. 3, below), which gates 126 should be open and/or closed. Controller 200 may then communicate signals to the actuators coupled to the determined gates 126, the signals causing the gates 126 to open or close. The automated control of gates 126 using controller 200 is described in further with regard to FIG. 3, below

Each milking box 120 may additionally include an equipment portion 128 located to the rear of stall portion 122 (i.e., adjacent to rear wall 124 c of stall portion 122). Equipment portion 128 may comprise any structure suitable for housing and/or storing a robotic attacher (e.g., robotic attacher 150, described below with regard to FIG. 3), one or more preparation cups, teat cups, receiver jars, separation containers, and/or any other suitable milking equipment. Rear wall 124 c (which may include a backplane 138, as described below with regard to FIG. 3) may separate stall portion 122 from equipment portion 128 such that equipment portion 128 is substantially inaccessible to a dairy cow located in stall portion 122. Accordingly a dairy cow located in stall portion 122 may be prevented from accidentally damaging the milking equipment by kicking, biting, trampling, or exposing the milking equipment to dirt, fluids, etc.

In certain embodiments, the equipment portion 128 being located to the rear of stall portion 122 may allow milking boxes 120 to be aligned in a single row such that walls 124 b and 124 d of each milking box 120 may comprise an entry gate 126 a and an exit gate 126 b (as illustrated in FIG. 1A). As a result, milking boxes 120 may be used to sort dairy cows into particular regions 110 by controlling the opening/closing of each gate 126 (e.g., in response to signals from a controller 200, as described above). For example, a dairy cow needing a health check or medical attention my be sorted into an appropriate region 110 (e.g., a veterinary pen). As another example, a dairy cow determined to be finished milking for the year and needing to be dried off and bread may be sorted out of the milking heard. As yet another example, a dairy cow may be sorted into one of a number of regions 110 based on the stage of lactation of the dairy cow (as dairy cows in different stages may require different feeds).

In certain other embodiments, the equipment portion 128 being located to the rear of stall portion 122 may allow pairs of milking boxes 120 to be located side by side such that the milking boxes share a wall 124 (e.g., wall 124 b may be shared between milking box 120 c and milking box 120 d, as depicted in FIG. 1B). As a result, a single robotic attacher (e.g., robotic attacher 150, described below with regard to FIG. 3) may be shared by the pair of milking boxes 120, which may reduce to cost of installing multiple milking boxes 120 in the enclosure 100.

FIG. 3 illustrates a detailed perspective view of an example milking box 120, according to certain embodiments of the present disclosure. As described above with regard to FIG. 1, milking box 120 may comprise a stall portion 122 (defined by walls 124 and gates 126) and equipment portion 128 located to the rear of stall portion 122. In certain embodiments, stall portion 122 of milking box 120 may include a feed bowl 130, a presence sensor 132, one or more gate sensors 134, and an identification sensor 136. Additionally, one or more of feed bowl 130, presence sensor 132, gate sensor(s) 134, and identification sensor 136 may be communicatively coupled to controller 200 (described above with regard to FIG. 2).

In certain embodiments, feed bowl 130 may dispense feed in order to attract a dairy cow so that the dairy cow will enter milking box 120 voluntarily. Accordingly, at least one of the entry gates 126 a may remain open when there is no dairy cow present to allow a dairy cow to enter. Once the dairy cow has entered milking box 120, presence sensor 132 may detect the presence of the dairy cow. For example, presence sensor 132 may detect when the dairy cow has passed through the entrance gate 126 a and/or when the dairy cow is generally centered in the stall portion 122. Upon detecting the presence of the dairy cow, presence sensor 132 may send a signal to controller 200. In response to the signal, controller 200 may cause one or more actuators to close gates 126. Gate sensor 134 may determine when gates 126 have closed. Gate sensor 134 may communicate a signal to controller 200 upon determining that gates 126 have closed. Controller 200 may initiate a milking procedure in response to the signal.

In certain embodiments, identification sensor 136 may determine the identity of the dairy cow. As an example, identification sensor 136 may comprise an antenna operable to read a radio frequency identification (RFID) from an ear tag, a collar, or other identifier associated with the dairy cow. Once the dairy cow has been identified, the identification sensor 136 may optionally be turned off to prevent wasting power and/or to minimize the dairy cow's exposure to radio waves.

Identification sensor 136 may communicate the identity of the dairy cow to controller 200 to facilitate retrieving information describing the dairy cow (e.g., from memory 240 or any other suitable location). Information describing the dairy cow may comprise historical data describing the particular dairy cow during a previous time period, such as a previous milking cycle. The previous milking cycle may refer to a milking cycle in which milking equipment was manually attached (e.g., by a user) or a milking cycle in which milking equipment was automatically attached (e.g., by a robotic attacher 150, described below). In certain embodiments, milking equipment may be attached manually the first time the dairy cow is milked in order to establish initial information describing the dairy cow, such as where the teats are located. The location of the dairy cow's teats may be described relative to a feature of the dairy cow, such as relative to the rear of the dairy cow, the hind legs, and/or a portion of the dairy cow's udder, such as a mid-line of the udder or relative to one or more of the other teats. A robotic attacher (e.g., robotic attacher 150, described below) may use the information describing the location of the teats during subsequent milkings to facilitate automatically attaching the milking equipment.

Examples of historical data include measurements, statistics, health information, and any other information describing the dairy cow during a previous time period. Examples of measurements include the length of the dairy cow (e.g., from head to tail) and the location of the dairy cow's teats during a previous milking cycle. Examples of statistics may include statistics describing when the dairy cow was last milked, the amount of milk produced in previous milking cycles, and so on. Examples of health information may include a designation not to milk the dairy cow due to a health problem or a designation to sort the dairy cow into a veterinary pen. In certain embodiments, a user may set an indicator in the database to indicate that the dairy cow should be sorted into the veterinary pen because the dairy cow is due for a check-up or because the user noticed the dairy cow appears to be ill or injured.

Controller 200 may use the information retrieved according to the identity of the dairy cow to determine how the particular dairy cow should be handled. If the information indicates the dairy cow should not be milked, controller 200 may cause an actuator to open one or more of the exit gates 126 b. For example, if controller 200 determines that the dairy cow should be sorted into a particular region 110 of enclosure 100, such as a veterinary pen, it may cause the exit gate 126 b that accesses the selected region 110 to open. Alternatively, controller 200 may cause multiple exit gates 126 b to open if the dairy cow is to be given the option of which region 110 to occupy upon exiting milking box 120. In certain embodiments, a prod may be used to encourage the dairy cow to exit. Examples of prods include a noise, a mechanical device, or a mild electric shock.

Upon a determination that the dairy cow should be milked, controller 200 may continue the milking procedure. In certain embodiments, controller 200 may cause a dispenser to drop feed into feed bowl 130. Additionally, controller 200 may cause feed bowl 130 to move toward the dairy cow in order to encourage the dairy cow to move to a pre-determined part of stall portion 122. As an example, feed bowl 130 may be initially positioned in the front of stall portion 122 when the dairy cow enters. Feed bowl 130 may then move back toward the dairy cow to encourage the dairy cow to move to the rear of stall portion 122 (e.g., against backplane 138, described below) in order to facilitate attaching the milking equipment to the dairy cow. To ensure feed bowl 130 does not crowd the dairy cow, the amount of movement of feed bowl 130 may be customized to the size of the dairy cow. For example, a user may determine an appropriate location for feed bowl 130 the first time the dairy cow enters milking box 120. The location may be stored (e.g., in memory module 240 of controller 200) such that it may be retrieved during subsequent milkings according to the identity of the dairy cow. Alternatively, the feed bowl 130 may be configured to continue moving toward the rear of the stall portion 122 until the dairy cow contacts backplane 138 (described below), which may indicate that the dairy cow is positioned in a location that is suitable for attaching the milking equipment.

In certain embodiments, rear wall 124 c of stall portion 122 includes a backplane 138. Backplane 138 may comprise any suitable configuration of materials suitable for locating the rear of the dairy cow in order to facilitate the efficient attachment of the milking equipment. In certain embodiments, the dairy cow may be backed toward backplane 138 by moving feed bowl 130 as described above. In certain other embodiments, backplane 138 may be moved forward toward the dairy cow. In certain other embodiments, a combination of backing the dairy cow toward backplane 138 and moving backplane 138 forward toward the dairy cow may be used. It may be determined that the rear of the dairy cow has been located when a portion of backplane 138, such as a pipe or bracket, touches the rear of the dairy cow at any suitable location, such as approximately mid-flank (i.e., between the udder and the tail). Backplane 138 may additionally include a manure gutter for directing manure toward a side of stall portion 122 (e.g., away from the dairy cow's udder and the milking equipment).

In certain embodiments, stall portion 122 may additionally include a waste grate 140 for disposing of waste. Waste grate 140 may have a rough surface to discourage the dairy cow from standing on it. In addition, waste grate 140 may be dimensioned such that when the dairy cow's hind legs are positioned on opposite sides of waste grate 140, the hind legs are separated to facilitate attachment of the milking equipment to the dairy cow's teats.

In certain embodiments, equipment portion 128 of milking box 120 may include a robotic attacher 150, one or more preparation cups 166, teat cups 168, pumps 170, receiver jars 172, milk separation containers 174, and/or any other suitable milking equipment. In certain embodiments, robotic attacher 150 may be suspended into equipment portion 128 from a rail 160. Rail 160 may be generally located above the level of the udder of a dairy cow located in stall portion 122 such that the teats of the dairy cow may be accessible to robotic attacher 150 when suspended from rail 160. For example, rail 160 may extend across the top of equipment portion 128 of milking box 120 and may be oriented substantially parallel to rear wall 124 c.

Robotic attacher 150 may be communicatively coupled to controller 200 (e.g., via a network facilitating wireless or wireline communication). Controller 200 may cause robotic attacher to attach certain milking equipment to the dairy cow's teats. For example, in certain embodiments, robotic attacher 150 may access a storage area 164 to retrieve preparation cups 166 and/or teat cups 168. Preparation cups 166 may be adapted to clean the teats, stimulate the flow of milk, and discard fore milk from the teat (e.g., the first few millimeters of milk that may be dirty). Teat cups 168 may be adapted to extract milk from the dairy cow. Preparation cups 166 and/or teat cups 168 attached to extendable hoses may by hung within storage area 164 between milkings to protect the cups from manure and flies. When it is time to milk the dairy cow, robotic attacher 150 may pull preparation cups 166 from storage area 164 and attach them to the dairy cow one at a time, two at a time, or four at a time. After the teats have been prepared, preparation cups 166 may be removed and teat cups 168 may be attached one at a time, two at a time, or four at a time. Once the cups are attached, robotic attacher 150 may withdraw to prevent the dairy cow from causing accidental damage to the equipment, and the system may proceed with milking the dairy cow.

During milking, pump 170 may pump good milk from teat cup 168 to receiver jar 172 to be stored at a cool temperature. Pump 170 may pump bad milk to milk separation container 174 to be discarded. Milk may be determined to be bad based on testing the milk and/or based on the particular dairy cow from which the milk has been extracted. For example, information retrieved from a database according to the dairy cow's identifier may indicate that the milk should be discarded because the dairy cow is ill or has recently calved.

In certain embodiments, robotic attacher 150 comprises a main arm 152, a supplemental arm 154, a gripping portion 156, and a vision system 158. In certain embodiments, the movement of main arm 152, supplemental arm 154, and gripping portion 156 may be varied in response to signals received from controller 200 (as described in further detail in FIG. 4 below). Although the components of robotic attacher 150 are depicted and primarily described as oriented in a particular manner, the present disclosure contemplates the components having any suitable orientation, according to particular needs.

In order to obtain access to the dairy cow's teats, main arm 152, supplemental arm 154, and gripping portion 156 may work together to facilitate movement in three dimensions, for example, according to an x-axis, a y-axis, and a z-axis. As illustrated, the x-axis extends in the direction of the dairy cow's length (e.g., from head-to-tail), the y-axis extends in the direction of the dairy cow's height, and the z-axis extends in the direction of the dairy cow's width.

Main arm 152 may comprise a vertical arm movably coupled to rail 160. For example, a hydraulic cylinder may movably couple main arm 152 to rail 160. Main arm 152 may traverse rail 160 to facilitate movement of robotic attacher 150 along the z-axis. Accordingly, rail 160 may comprise a track and rollers adapted to support the weight of robotic attacher 150 and to facilitate movement of main arm 152 back-and-forth along rail 160. To prevent wires and hoses from interfering with the movement of main arm 152 along rail 160, guides 162 may be used to loosely hold the wires and hoses in place. For example, guides 162 may comprise U-shaped brackets that allow the wires and hoses to extend a sufficient amount to accommodate movements of main arm 152, but prevent the wires and hoses from dangling in the path of main arm 152.

Main arm 152 attaches to supplemental arm 154. Supplemental arm 154 facilitates movements in any direction. That is, supplemental arm 154 moves in-and-out along the x-axis, up-and-down along the y-axis, and/or from side-to-side along the z-axis. Accordingly, supplemental arm may extend between the rear legs of the dairy cow located within stall portion 122 in order to attach milking equipment to the dairy cow. Supplemental arm 154 may comprise gripping portion 156. Gripping portion 156 may grip a preparation cup 166 or a teat cup 168 for attachment to the dairy cow's teat. Gripping portion 156 may comprise a wrist adapted to perform fine movements, such as pivot and tilt movements, to navigate around the dairy cow's legs and to access the dairy cow's teats. To determine the location of the dairy cow's legs and teats, robotic attacher 150 may use vision system 158. An example embodiment of vision system 158 is described with respect to FIG. 4 below.

FIG. 4 illustrates a detailed perspective view of an example of robotic attacher 150, according to certain embodiments of the present disclosure. Robotic attacher 150 may include a main arm 152, a supplemental arm 154, a gripping portion 156, and a vision system 158. As described with respect to FIG. 3, robotic attacher 150 may be communicatively coupled to controller 200. Controller 200 may cause robotic attacher to retrieve a cup, such as preparation cup 166 or teat cup 168, move the cup toward a teat of a dairy cow within milking box 120, and attach the cup to the teat.

In general, the teats of the dairy cow may be relatively less visible when looking at the dairy cow from the rear and relatively more visible when looking at the dairy cow from the side. Vision system 158 may facilitate locating the teats from a position to the rear of the dairy cow. Vision system 158 may include multiple cameras, such as a first camera 158 a and a second camera 158 b. In certain embodiments, cameras 158 a, 158 b may be coupled to robotic attacher 150 and may be positioned at any suitable location along main arm 152 or supplemental arm 154. As an example, second camera 158 b may be coupled to gripping portion 156 of supplemental arm 154 at a location proximate to the part of gripping portion 156 adapted to hold a teat cup, and first camera 158 a may be coupled to supplemental arm 154 at a location between second camera 158 b and main arm 152.

In operation, controller 200 may access a first image 176 generated by first camera 158 a (e.g., from memory module 240) and use first image 176 to determine, using any suitable logic 220, a reference point 178 proximate to the udder, which may then be stored (e.g., in memory module 240). The reference point 178 may be defined relative to certain features of the dairy cow, such as the hind legs and/or the udder. Controller 200 may send a signal to robotic attacher 150 causing robotic attacher 150 to position second camera 158 b relative to the reference point 178. Accordingly, second camera 158 b may have a consistent point of reference from one milking cycle to the next, which may allow the teats to be located efficiently. Controller 200 may access a second image 180 generated by second camera 158 b (e.g., from memory module 240) in order to determine, using any suitable logic 220, a location of a teat.

In certain embodiments, first camera 158 a may comprise a three-dimensional camera adapted to generate a first image 176 depicting the rear of the dairy cow, including the hind legs and the udder. Using a three-dimensional camera may facilitate generating a relatively complete image of the rear of the dairy cow within approximately a couple of seconds (e.g., one second), which may be faster than the amount of time it would take for a two-dimensional camera to generate a similar image. In certain embodiments, second camera 158 b may comprise a two-dimensional camera adapted to generate a second image 180 depicting at least a portion of the udder to facilitate locating the teats. Second camera 158 b may facilitate locating the end of each teat with a relatively high degree of accuracy, such as within a few millimeters. The location of the teat may be used to instruct robotic attacher 150 where to attach the milking equipment.

First camera 158 a may begin generating the first image 176 in response to a signal from controller 200 indicating that the dairy cow is positioned proximate to the milking equipment. As an example, the signal may indicate that the rear of the dairy cow has been detected by the backplane 138 of the milking box 120. First camera 158 a may begin generating the first image 176 from a starting point and may update the first image 176 in real-time as robotic attacher 150 approaches the dairy cow. The starting point may be determined according to a default position of robotic attacher 150 (e.g., a position determined relative to milking stall 122). Thus, the starting point may be determined without the use of historical data associated with the particular dairy cow being milked. First camera 158 a may communicate the first image 176 to controller 200, and controller 200 may use the image to locate main features of the dairy cow, such as the right hind leg, the left hind leg, the udder, and/or the tail.

Controller 200 may determine the reference point 178 based on the location of the main features of the dairy cow. The reference point 178 may be defined relative to certain features of the dairy cow, such as the hind legs and/or the udder. As an example, the reference point 178 may be defined between the hind legs and/or below the udder. For example, in certain embodiments, the reference point 178 may be located proximate to a mid-point of the udder. The mid-point of the udder may refer to a point generally located between the front teats and the rear teats in the x-direction and/or between the left teats and the right teats in the z-direction. In certain embodiments, the mid-point of the udder may be estimated prior to determining the precise location of the teats, for example, according to the general size and location of the udder. The reference point 178 may be spaced apart from the dairy cow in the y-direction to minimize the likelihood that second camera 158 b touches the dairy cow. For example, the reference point 178 may be located a few inches below the mid-point of the udder.

Controller 200 may communicate the reference point 178 and/or information describing the main features of the dairy cow to robotic attacher 150. The reference point 178 may be used to position second camera 158 b. The information describing the main features of the dairy cow may be used to prevent robotic attacher 150 from colliding with the dairy cow when navigating second camera 158 b toward the reference point 178. Information describing the main features of the dairy cow may include the position of the hind legs, the space between the hind legs, the position of the udder, the height of the udder, the position of the tail, and/or other information. Once robotic attacher 150 has positioned second camera 158 b relative to the reference point 178, second camera 158 b may begin scanning the udder.

In certain embodiments, second camera 158 b may determine where to look for one or more of the teats according to historical data. The historical data may be received from controller 200 and may describe a previously-determined location of the teats relative to the reference point 178. The previously-determined location may be based on the location of the teats during one or more previous milking cycles. As an example, the previously-determined location may comprise the location of the teats during the most recent milking cycle. As another example, the previously-determined location may comprise an average of the locations of the teats during a number of previous milking cycles. As another example, the previously-determined location may comprise the location of the teats during a previous milking cycle in which the udder was likely to be as full of milk as the current milking cycle. For example, if eight hours have elapsed since the dairy cow was last milked, the previously-determined location may be determined from a previous milking cycle in which the dairy cow had not been milked for approximately eight hours. Referring to historical data may minimize the area that second camera 158 b must scan in order to locate the teat and may reduce the amount of time required to locate the teat.

Second camera 158 b may communicate the second image 180 to controller 200, and controller 200 may access the second image 180 to locate the teats of the dairy cow. As described above, in certain embodiments, second camera 158 b may comprise a two-dimensional camera, such as a horizontal laser. If the horizontal laser may scan a portion of the udder other than the teats (e.g., a relatively even surface of the udder), the scan communicated to controller 200 may generally resemble a substantially solid line. If the horizontal laser scans a portion of the udder that includes the teats, the scan communicated to controller 200 may generally resemble a broken line depicting the teats and the spaces between the teats. As an example, controller 200 may determine that a teat has been located if the scan comprises a broken line in which a solid portion of the line generally corresponds to the width of a teat and the broken portions of the line generally correspond to the proportions of the space between teats.

In certain embodiments, robotic attacher 150 may further comprise a nozzle 182. Nozzle 182 may be coupled to gripping portion 156. Nozzle 182 may spray disinfectant on the teats of the dairy cow at the end of a milking cycle, that is, after the dairy cow has been milked and the teat cups have been removed. The disinfectant may be sprayed to prevent mastitis or other inflammation or infection. In certain embodiments, gripping portion may be operable to rotate 180° around the x-axis. During milking, second camera 158 b may be generally oriented on top of gripping portion 156, and nozzle 182 may be generally oriented underneath gripping portion 156 (i.e., opposite second camera 158 b). Orienting nozzle 182 underneath gripping portion 156 during milking may prevent milk or other contaminants from accessing nozzle 182. Once the milking has been completed, gripping portion 156 may rotate such that nozzle 182 may be generally oriented on top of gripping portion 156, and second camera 158 b may be generally oriented underneath gripping portion 156. Orienting nozzle 182 on top of gripping portion 156 after milking may facilitate spraying the teats with disinfectant from nozzle 182.

FIG. 5 illustrates an example method 500 for milking a dairy cow using the example milking box 120 depicted in FIGS. 1-4, according to certain embodiments of the present disclosure. In certain embodiments, milking box 120 may be positioned within enclosure 100, and at least one of the gates 126 of stall portion 122 may be opened to allow the dairy cow to voluntarily enter milking box 120. At step 502, presence sensor 132 detects the presence of the dairy cow. Presence sensor 132 communicates a signal to controller 200 indicating the presence of the dairy cow has been detected. Controller 200 sends a signal to an actuator causing gates 126 to close at step 504. Thus, the dairy cow is prevented from exiting the milking box. Gate closed sensor 134 determines that the gates are closed and communicates a gate-closed signal to controller 200. In response to the gate-closed signal, controller 200 causes the milking procedure to proceed to the next step. For example, controller 200 sends a signal requesting identification sensor 136 to provide an identifier associated with the dairy cow.

At step 506, identification sensor 136 reads an ear tag, collar, or other identifier (e.g., an RFID signal) associated with the dairy cow. Identification sensor 136 communicates the identifier to controller 200 to facilitate determining the identity of the cow. At step 508, controller 200 retrieves information associated with the particular dairy cow according to the determined identity of the dairy cow. For example, information may be retrieved from memory 240. Controller 200 determines whether to proceed with milking the dairy cow at step 510. The determination may be made according to the information associated with the dairy cow. For example, if the information indicates that the dairy cow is ill or that the dairy cow has already been milked in the current milking cycle, a determination may be made not to proceed with milking the dairy cow. Alternatively, if the information indicates that the dairy cow is healthy and that it is time to milk the dairy cow, a determination may be made to proceed with milking the dairy cow. If the dairy cow is to be milked, the method continues to step 512. If the dairy cow is not to be milked, the method skips to step 548.

At step 512, controller 200 causes a dispenser to drop feed into feed bowl 130 and positions feed bowl 130. In certain embodiments, feed bowl 130 may move toward the rear of the stall to encourage the dairy cow to back-up toward the milking equipment. Controller 200 determines that the dairy cow is positioned near the milking equipment at step 514. For example, a signal received from backplane 138 of milking box 120 may be used to determine that the dairy cow is positioned near the milking equipment. The signal may indicate when the rear of the dairy cow touches a portion of backplane 138. Upon determining the dairy cow is positioned near the milking equipment (e.g., toward the rear of the stall portion of the milking box), controller 200 instructs first camera 158 a to generate a first image 176 of the rear of the dairy cow at step 516. In certain embodiments, first camera 158 a may be positioned on robotic attacher 150, and first camera 158 a may begin generating the first image 176 in-flight, that is, as robotic attacher 150 retrieves a preparation cup 166 or teat cup 168 from storage and begins moving the cup toward the udder. At step 518, controller 200 receives the first image 176. The first image 176 includes main features of the dairy cow, such as the hind legs, the udder, and/or the tail. Controller 200 accesses the first image 176 to determine a reference point 178 at step 520. As an example, the reference point 178 may comprise a point between the dairy cow's hind legs, a point below the dairy cow's udder, and/or a point proximate to a mid-point of the udder. The mid-point may refer to a point between a first teat and a second teat (e.g., between a left teat and a right teat and/or between a front teat and a rear teat).

At step 522, controller 200 sends a signal causing robotic attacher 150 to position second camera 158 b relative the reference point 178. Controller 200 communicates historical data to second camera 158 b at step 524. The historical data may comprise data retrieved from a database that indicates a previously-determined location of the teats during a previous milking cycle. The previously-determined location may be described relative to the reference point 178. The method proceeds to step 526 where controller 200 sends a signal causing second camera 158 b to generate a second image 180. Second camera 158 b may generate the second image 180 by scanning a portion of the udder indicated by the historical data. Second camera 158 b may scan the whole teat to facilitate identifying the angle of the teat and the point attachment. At step 528, the controller 200 receives the second image 180 from the second camera. Controller 200 accesses the second image 180 to determine the location of the teats at step 530. The teats may be located in any suitable manner, such as one at a time, two at a time, or four at a time.

Upon determining the location of the teats, controller 200 causes robotic attacher 150 to attach one or more preparation cups 166 at step 532. Second camera 158 b may continue to scan the teat while the preparation cup is being attached. Continuing to scan the teat may allow for efficient attachment of the preparation cup. In addition, continuing to scan the teat may allow the preparation cup to be attached at a suitable angle, with the mouthpiece centered on the teat, to prevent folding the teat into the preparation cup. Vacuum pressure may be used to hold the preparation cups in place. Preparation cup 166 facilitates preparing the teat at step 534. Preparation may include cleaning the teat, stimulating the flow of milk, and discarding fore milk from the teat. After each of the teats have been prepared, preparation cups 166 may be removed at step 536. For example, the vacuum pressure may be released to remove the preparation cups and the preparation cups may be returned to the storage area.

The method continues to step 538, where controller 200 causes robotic attacher 150 to attach a teat cup 168. For example, teat cup 168 may be retrieved from storage area 164 and navigated to the teat. Second camera 158 b may continue to scan the teat while the teat cup 168 is being attached to ensure proper placement of the teat cups. Vacuum pressure may be used to attach the teat cup 168. A sensor may be used to determine the vacuum pressure associated with each teat cup 168. If the vacuum level is low, it may indicate that teat cup 168 has fallen off and needs to be reattached. In certain embodiments, additional teat cups 168 may be attached by re-performing steps 522-530 to locate additional teats.

Once teat cups 168 have been attached to all four teats, robotic attacher 150 may retract and the method may proceed to step 540 to extract milk from the dairy cow. As an example, milk may be extracted by applying pulsation to the teat cup. A sensor may monitor the flow of milk. If the flow becomes low, it may be determined whether teat cup 168 should be removed or reattached. For example, if teat cup 168 has been attached for at least approximately one-and-a-half minutes and/or the amount of milk extracted is consistent with previous milking cycles, it may be determined that teat cup 168 should be removed, otherwise, it may be determined that teat cup 168 should be reattached. When it is determined that teat cup 168 should be removed, controller 200 initiates step 542 to remove teat cups 168. For example, controller 200 may send a signal causing the vacuum pressure to be released to allow teat cups 168 to drop from the teats. Teat cups 168 may be returned to storage area 164 by retracting hoses attached to teat cups 168 or by any other suitable method. Controller 200 then sends a signal to robotic attacher 150 to cause gripping portion 156 to rotate at step 544 in order to orient nozzle 182 toward the teat. The method applies disinfectant to the teat at step 546 by spraying the disinfectant through nozzle 182.

At step 548, controller 200 determines which gate(s) 126 to open. Selectively opening gates 126 may allow the dairy cow to be sorted into a particular region 110 of enclosure 100. The dairy cow may be sorted if its milk tested bad, if it failed to produce a sufficient amount of milk, if information retrieved from a database indicates the dairy cow should be sorted, or for other suitable reasons. Controller 200 sends a signal causing an actuator to open the selected gate(s) at step 550. In certain embodiments, a prod may be used to encourage the dairy cow to exit the milking box. The dairy cow exits the milking box and the method ends.

FIG. 6 illustrates an example method 600 for installation of milking box 120, according to certain embodiments of the present disclosure. The method may begin by positioning walls 124 in order to define stall portion 122. For example, the method positions a front wall 124 a at step 602. The method proceeds to step 604 where a rear wall 124 c is positioned substantially parallel to front wall 124 a. Rear wall 124 c may be spaced apart from front wall 124 a a suitable distance to accommodate a dairy cow. At step 606, a first side wall 124 b is positioned to extend between front wall 124 a and rear wall 124 c. The first side wall may include one or more gates, such as an entry gate 126 a and an exit gate 126 b. The method proceeds to step 608 to position a second side wall 124 d to extend between front wall 124 a and rear wall 124 c. Second side wall 124 d may be spaced apart from first side wall 124 d in order to accommodate a dairy livestock within stall portion 122. Second side wall 124 d may or may not include gates 126. For example, in certain embodiments, second side wall 124 d may comprise a second entry gate 126 a and a second exit gate 126 b. In alternative embodiments, second side wall 124 d may be positioned adjacent a second milking box and may define a boundary between milking box 120 and the adjacent milking box. In step 610, an equipment portion 128 is positioned to the rear of milking box 120, adjacent rear wall 124 c. Rear wall 124 c may comprise a backplane 138 adapted to physically contact a mid-flank portion of the dairy livestock when the dairy livestock is positioned proximate to equipment portion 128 of milking box 120.

At step 612, a movable feed bowl 130 may be positioned within milking box 120. Movable feed bowl 130 may be adapted to move from the front of milking box 120 toward the rear of milking box 120 to encourage the dairy livestock to back-up toward backplane 138. The method may proceed to step 614 to install a plurality of sensors within milking box 120. Examples of sensors include a presence sensor 132 adapted to detect the presence of the dairy livestock within milking box 120, one or more gate closed sensors 134 to detect whether gates 126 are closed, and a livestock identification sensor 136 adapted to determine the identity of the dairy livestock present within milking box 120. At step 616, a waste grate 140 may be positioned within milking box 120.

The method may proceed to step 618 to position a rail 160. Rail 160 may be positioned to extend in a horizontal direction substantially parallel to rear wall 124 c. For example, the horizontal direction may refer to the z-axis illustrated in FIG. 3. In certain embodiments, rail 160 may be positioned proximate to rear wall 124 c. At step 620, a robotic attacher 150 may be positioned in milking box 120. Robotic attacher may comprise a main arm 152, a supplemental arm 154, including a gripping portion 156, and a vision system 158. In certain embodiments, robotic attacher 150 may be positioned in equipment portion 128 of milking box 120 by suspending main arm 152 from rail 160. Accordingly, main arm 152 may be operable to traverse rail 160 in the horizontal direction. In certain embodiments, one or more guides 162 may be positioned proximate to rail 160. Guides 162 may be adapted to guide the path of hoses and wires connected to robotic attacher 150 to prevent the hoses and wires from interfering with the movement of main arm 152 along rail 160. Supplemental arm 154 may be positioned to facilitate selectively extending supplemental arm 154 between the rear legs of the dairy livestock located within stall portion 122.

The method proceeds to step 622 to position other milking equipment in equipment portion 128 of milking box 120. Other milking equipment may include one or more preparation cups 164, teat cups 168, pumps 170, milk receiver jars 172, and/or milk separation containers 174. The method then ends.

Modifications, additions, or omissions may be made to the systems described herein without departing from the scope of the invention. The components may be integrated or separated. Moreover, the operations may be performed by more, fewer, or other components. Additionally, the operations may be performed using any suitable logic comprising software, hardware, and/or other logic. As used in this document, “each” refers to each member of a set or each member of a subset of a set.

Modifications, additions, or omissions may be made to the methods described herein without departing from the scope of the invention. For example, the steps may be combined, modified, or deleted where appropriate, and additional steps may be added. Additionally, the steps may be performed in any suitable order without departing from the scope of the present disclosure.

Although the present invention has been described with several embodiments, diverse changes, substitutions, variations, alterations, and modifications may be suggested to one skilled in the art, and it is intended that the invention encompass all such changes, substitutions, variations, alterations, and modifications as fall within the spirit and scope of the appended claims. 

1. A system comprising: a controller operable to: access a first image generated by a first camera, the first image including one or more main features of a dairy livestock; determine a reference point based at least in part on the first image, the reference point determined based at least in part upon the one or more main features of the dairy livestock; access a second image generated by a second camera, the second image including at least a portion of an udder of the dairy livestock; and determine a location of a teat of the dairy livestock based at least in part on the second image.
 2. The system of claim 1, wherein the first camera comprises a three-dimensional camera and the second camera comprises a two-dimensional camera.
 3. The system of claim 1, wherein: the first camera and the second camera are each positioned on a robotic attacher; and the controller is further operable to: communicate, in response to determining the reference point, a first signal to the robotic attacher, the first signal causing the robotic attacher to be positioned relative to the reference point such that the second camera may generate the second image including at least a portion of the udder of the dairy livestock; communicate, in response to determining a location of the teat of the dairy livestock, a second signal to the robotic attacher, the second signal causing the robotic attacher to position milking equipment relative to the determined location of the teat of the dairy livestock such that the robotic attacher may attach the milking equipment to the teat.
 4. The system of claim 3, wherein the second camera is positioned on a gripping portion of the robotic attacher.
 5. The system of claim 1, wherein: the one or more main features of the dairy livestock include the hind legs of the dairy livestock; and the reference point is located between the hind legs of the dairy livestock
 6. The system of claim 1, wherein the controller is further operable to: access identification information associated with the dairy livestock; access historical data associated with the dairy livestock based on the identification information, the historical data including a previously-determined location of the teat of the dairy livestock; and communicate a signal to the second camera, the signal causing the second camera to be directed toward the previously-determined location of the teat of the dairy livestock when generating the second image.
 7. The system of claim 1, wherein: the dairy livestock is located in a milking box stall; and the controller is further operable to communicate a signal to the first camera, the signal causing the first camera to generate the first image of a pre-determined location relative to the milking box stall.
 8. A method, comprising: accessing a first image generated by a first camera, the first image including one or more main features of a dairy livestock; determining a reference point based at least in part on the first image, the reference point determined based at least in part upon the one or more main features of the dairy livestock; accessing a second image generated by a second camera, the second image including at least a portion of an udder of the dairy livestock; and determining a location of a teat of the dairy livestock based at least in part on the second image.
 9. The method of claim 8, wherein: the first image comprises a three-dimensional image; and the second image comprises a two-dimensional image.
 10. The method of claim 8, wherein the first camera and the second camera are each positioned on a robotic attacher, the method further comprising: communicating, in response to determining the reference point, a first signal to the robotic attacher, the first signal causing the robotic attacher to be positioned relative to the reference point such that the second camera may generate the second image including at least a portion of the udder of the dairy livestock; and communicating, in response to determining a location of the teat of the dairy livestock, a second signal to the robotic attacher, the second signal causing the robotic attacher to position milking equipment relative to the determined location of the teat of the dairy livestock such that the robotic attacher may attach the milking equipment to the teat.
 11. The method of claim 8, wherein: the one or more main features of the dairy livestock include the hind legs of the dairy livestock; and the reference point is located between the hind legs of the dairy livestock
 12. The method of claim 8, further comprising: accessing identification information associated with the dairy livestock; accessing historical data associated with the dairy livestock based on the identification information, the historical data including a previously-determined location of the teat of the dairy livestock; and communicating a signal to the second camera, the signal causing the second camera to be directed toward the previously-determined location of the teat of the dairy livestock when generating the second image.
 13. The method of claim 8, wherein the dairy livestock is located in a milking box stall, and further comprising: communicating a signal to the first camera, the signal causing the first camera to generate the first image of a pre-determined location relative to the milking box stall.
 14. A non-transitory computer readable storage medium comprising logic, the logic, when executed by a processor, operable to: access a first image generated by a first camera, the first image including one or more main features of a dairy livestock; determine a reference point based at least in part on the first image, the reference point determined based at least in part upon the one or more main features of the dairy livestock; access a second image generated by a second camera, the second image including at least a portion of an udder of the dairy livestock; and determine a location of a teat of the dairy livestock based at least in part on the second image.
 15. The logic of claim 14, wherein: the first image comprises a three-dimensional image; and the second image comprises a two-dimensional image.
 16. The logic of claim 14, wherein: the first camera and the second camera are each positioned on a robotic attacher; and the logic is further operable to: communicate, in response to determining the reference point, a first signal to the robotic attacher, the first signal causing the robotic attacher to be positioned relative to the reference point such that the second camera may generate the second image including at least a portion of the udder of the dairy livestock; communicate, in response to determining a location of the teat of the dairy livestock, a second signal to the robotic attacher, the second signal causing the robotic attacher to position milking equipment relative to the determined location of the teat of the dairy livestock such that the robotic attacher may attach the milking equipment to the teat.
 17. The logic of claim 14, wherein: the one or more main features of the dairy livestock include the hind legs of the dairy livestock; and the reference point is located between the hind legs of the dairy livestock
 18. The logic of claim 14, wherein the logic is further operable to: access identification information associated with the dairy livestock; access historical data associated with the dairy livestock based on the identification information, the historical data including a previously-determined location of the teat of the dairy livestock; and communicate a signal to the second camera, the signal causing the second camera to be directed toward the previously-determined location of the teat of the dairy livestock when generating the second image.
 19. The logic of claim 14, wherein: the dairy livestock is located in a milking box stall; and the logic is further operable to communicate a signal to the first camera, the signal causing the first camera to generate the first image of a pre-determined location relative to the milking box stall. 